﻿/* PN264 - A Parallel H.264 Encoding Utility
 * Copyright © 2009 PN264 Development Team
 *
 * This software is released the terms and conditions of the MIT License,
 * a copy of which can be found in the License.txt file.
 *
 * Contributors:
 * Will 'AnarkiNet' Shelley (AnarkiNet@gmail.com)
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PN264
{
    /// <summary>
    /// Represents options that control the behavior of a <see cref="Worker"/>.
    /// </summary>
    public struct WorkerOptions
    {
        #region Fields
        private int taskQueueSize;
        #endregion
        #region Properties
        /// <summary>
        /// Gets or sets the size of the task queue of the <see cref="Worker"/>. The task queue is the number of tasks,
        /// <i>other than the current task</i>, that are queued.
        /// </summary>
        /// <remarks>
        /// Data for queued tasks is transmitted in the background while the <see cref="Worker"/> processes it's current <see cref="Task"/>,
        /// allowing the <see cref="Worker"/> to immediately begin processing another <see cref="Task"/> without waiting for the network.
        /// </remarks>
        public int TaskQueueSize
        {
            get
            {
                return this.taskQueueSize;
            }
            set
            {
                this.taskQueueSize = value;
            }
        }
        #endregion
    }
}
